<!DOCTYPE html>
<html>
	<head>
		<meta name="viewport" content="width=device-width,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no,viewport-fit=cover">
	    <meta name="apple-mobile-web-app-capable" content="yes" />
	    <meta name="apple-mobile-web-app-status-bar-style" content="black" />
	    <meta name="format-detection" content="telephone=no" />
	    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
		<title>中转页面</title>
		<script>
			//给流程中心发送消息，获得修改业务数据需要的信息
			window.workflow_pull_business_data = function(){
				console.log("给流程中心发送消息拿数据")
				var postData = {
					type: "workflow_pull_business_data"
				}
				parent.postMessage(JSON.stringify(postData), "*");//监听到之后，给父页面（流程中心）发消息，请求返回相关数据信息
			}

			//给流程中心发送消息，获得修改业务数据需要的信息
			window.workflow_close_business_win = function(){
				//erp发送关闭流程中心“修改业务数据”弹框message
				var postData = {
					type: "workflow_reloadform"
				}
				parent.postMessage(JSON.stringify(postData), "*");//给流程中心发送消息，通知流程中心刷新表单
			}

			window.ns = {
				//页面加载完毕，打开修改业务数据页面
				page_load:function(){
					var iX = window.screen.availWidth - 10;
					var iY = window.screen.availHeight - 50;
					var openType = "left=0,top=0,width=" + iX + ",height=" + iY + ",status=1,resizable=1,scrollbars=yes";

					var url = location.href.split("backurl=");
					if(url.length>1){
						url = decodeURIComponent(location.href.split("backurl=")[1]);
						window.newWindow = window.open(url, "修改业务数据", openType);
					}else{
						console.log("提供的地址错误")
					}

				},
				//监听消息
				_excuteMessage:function(evt) {
					var result;
					try {
						result = JSON.parse(evt.data) || {};
					} catch (ex) {
						return;
					}

					if(result && result.type){

						//此message为erp发送，用于请求“修改业务数据”需要的数据
						if(result.type == "workflow_pull_business_data"){
							window.workflow_pull_business_data();
						}

						//此message为流程中心发送，用于返回“修改业务数据”需要的数据
						if(result.type == "workflow_push_business_data"){
							/*消息返回的数据如下
								{
									type: 'workflow_push_business_data',//消息类型
									data: {
										BT_DomainXML: '',//流程中心固定返回的为空字符串
										ModifyBusinessDataDomain: "",//string 可编辑业务字段
										CrossBussinessUrl:""//string
									}//返回数据
								}
							*/
							// window.newWindow.postMessage(JSON.stringify({
							// 	type: 'workflow_push_business_data',
							// 	data: result.data
							// }), "*");//给erp发送消息，包含“修改业务数据”需要的数据

							console.log("拿到消息，调用erp的方法");
							if(window.newWindow.workflow_push_business_data){
								window.newWindow.workflow_push_business_data(result.data);
							}

							//增加一个window变量，存储流程中心给的修改业务需要的数据，防止IE9下要解决跨域问题
							//erp可直接调用opener.window.workflow_push_business_data拿到这个变量
							window.workflow_push_business_data = result.data;

						}

						//此message为erp发送，用于关闭流程中心“修改业务数据”弹框
						if(result.type == "workflow_close_business_win"){
							
						}
					}
				},
				bindMessageEvt:function(){
					var self =this;
					if (window.addEventListener) {
						window.addEventListener("message", self._excuteMessage, false);
					} else if (window.attachEvent) {
						window.attachEvent("onmessage", self._excuteMessage);
					}
				},
				init:function(){
					this.bindMessageEvt();
				}
			}
			ns.init();//入口方法
		</script>
	</head>
	<body onload="ns.page_load()">
		<!--中转页面，用于解决流程中心打开业务页面，chrome嵌套iframe导致跨域的问题-->
	</body>
</html>
